export const enum Types {
    No = 'No',
    Yes = 1
}
console.log(Types.No); // No
console.log(Types.Yes); // 1

namespace test06 {

    enum Colors {
        Red,
        Green,
        Blue
    }
    console.log(Colors.Red); // 0
    console.log(Colors.Green); // 1
    console.log(Colors.Blue); // 2

    // 增长枚举
    enum Colors2 {
        Red = 5,
        Green,
        Blue
    }
    console.log(Colors2.Red); // 5
    console.log(Colors2.Green); // 6
    console.log(Colors2.Blue); // 7

    // 字符串枚举
    enum Colors3 {
        Red = 'red',
        Green = 'green',
        BLue = 'blue'
    }

    // 异构枚举
    // 枚举可以混合字符串和数字成员
    enum Types1 {
        No = "No",
        Yes = 1,
    }

    // 接口枚举
    enum Types2 {
        yyds,
        dddd
    }
    interface A {
        red: Types2.yyds
    }

    let obj: A = {
        red: Types2.yyds
    }
    console.log('obj', obj); // obj { red: 0 }


    // 反向映射
    enum Enum {
        fall
    }
    let a = Enum.fall
    console.log('a:', a); // a: 0
    console.log(Enum[a]); // fall



}